package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-采购价目/折扣明细表对象 erp_king_purchase_price_detail
 *
 * @author cxl
 * @date 2024-06-20
 */
@TableName ( "erp_king_purchase_price_detail" )
@ApiModel ( value = "金蝶-采购价目/折扣明细表", description = "金蝶-采购价目/折扣明细表" )
@Data
public class KingPurchasePriceDetailEntity {

    /**
     * 主键id
     */
    @TableId ( type = IdType.INPUT )
    private String id;

    /**
     * 价目表主表id
     */
    @ApiModelProperty ( "价目表主表id" )
    @TableField ( "price_info_id" )
    @Excel ( name = "价目表主表id" )
    private String priceInfoId;

    /**
     * 物料表id(物料接口)
     */
    @ApiModelProperty ( "物料表id(物料接口)" )
    @TableField ( "material_id" )
    @Excel ( name = "物料表id(物料接口)" )
    private String materialId;

    /**
     * 计价单位(字典)
     */
    @ApiModelProperty ( "计价单位(字典)" )
    @TableField ( "pricing_unit" )
    @Excel ( name = "计价单位(字典)" )
    private String pricingUnit;

    /**
     * 从
     */
    @ApiModelProperty ( "从" )
    @TableField ( "from_where" )
    @Excel ( name = "从" )
    private String fromWhere;

    /**
     * 至
     */
    @ApiModelProperty ( "至" )
    @TableField ( "to_where" )
    @Excel ( name = "至" )
    private String toWhere;

    /**
     * 单价
     */
    @ApiModelProperty ( "单价" )
    @TableField ( "unit_price" )
    @Excel ( name = "单价" )
    private String unitPrice;

    /**
     * 含税单价
     */
    @ApiModelProperty ( "含税单价" )
    @TableField ( "including_tax_price" )
    @Excel ( name = "含税单价" )
    private String includingTaxPrice;

    /**
     * 税率
     */
    @ApiModelProperty ( "税率" )
    @TableField ( "tax_rate" )
    @Excel ( name = "税率" )
    private String taxRate;

    /**
     * 价格系数
     */
    @ApiModelProperty ( "价格系数" )
    @TableField ( "price_coefficient" )
    @Excel ( name = "价格系数" )
    private String priceCoefficient;

    /**
     * 价格上限
     */
    @ApiModelProperty ( "价格上限" )
    @TableField ( "price_ceiling" )
    @Excel ( name = "价格上限" )
    private String priceCeiling;

    /**
     * 价格下限
     */
    @ApiModelProperty ( "价格下限" )
    @TableField ( "price_floor" )
    @Excel ( name = "价格下限" )
    private String priceFloor;

    /**
     * 生效日期
     */
    @ApiModelProperty ( "生效日期" )
    @TableField ( "effective_date" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "生效日期", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date effectiveDate;

    /**
     * 失效日期
     */
    @ApiModelProperty ( "失效日期" )
    @TableField ( "expiration_date" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date expirationDate;

    /**
     * 行禁用
     */
    @ApiModelProperty ( "行禁用" )
    @TableField ( "line_disabled" )
    @Excel ( name = "行禁用" )
    private Boolean lineDisabled;

    /**
     * 需求组织
     */
    @ApiModelProperty ( "需求组织" )
    @TableField ( "require_dept" )
    @Excel ( name = "需求组织" )
    private String requireDept;

    /**
     * 自定义基础资料1
     */
    @ApiModelProperty ( "自定义基础资料1" )
    @TableField ( "custom_basic_data_one" )
    @Excel ( name = "自定义基础资料1" )
    private String customBasicDataOne;

    /**
     * 自定义基础资料2
     */
    @ApiModelProperty ( "自定义基础资料2" )
    @TableField ( "custom_basic_data_two" )
    @Excel ( name = "自定义基础资料2" )
    private String customBasicDataTwo;

    /**
     * 自定义辅助资料1
     */
    @ApiModelProperty ( "自定义辅助资料1" )
    @TableField ( "custom_support_data_one" )
    @Excel ( name = "自定义辅助资料1" )
    private String customSupportDataOne;

    /**
     * 自定义辅助资料2
     */
    @ApiModelProperty ( "自定义辅助资料2" )
    @TableField ( "custom_support_data_two" )
    @Excel ( name = "自定义辅助资料2" )
    private String customSupportDataTwo;

    /**
     * 自定义文本1
     */
    @ApiModelProperty ( "自定义文本1" )
    @TableField ( "custom_text_one" )
    @Excel ( name = "自定义文本1" )
    private String customTextOne;

    /**
     * 自定义文本2
     */
    @ApiModelProperty ( "自定义文本2" )
    @TableField ( "custom_text_two" )
    @Excel ( name = "自定义文本2" )
    private String customTextTwo;

    /**
     * 自定义价格1
     */
    @ApiModelProperty ( "自定义价格1" )
    @TableField ( "custom_price_one" )
    @Excel ( name = "自定义价格1" )
    private String customPriceOne;

    /**
     * 自定义价格2
     */
    @ApiModelProperty ( "自定义价格2" )
    @TableField ( "custom_price_two" )
    @Excel ( name = "自定义价格2" )
    private String customPriceTwo;

    /**
     * 备注
     */
    @ApiModelProperty ( "备注" )
    @TableField ( "remark" )
    @Excel ( name = "备注" )
    private String remark;

    /**
     * 行审核状态（0未审核 1已审核）
     */
    @TableField ( "review_status" )
    @ApiModelProperty ( "行审核状态（0未审核 1已审核）" )
    @Excel ( name = "行审核状态", readConverterExp = "0=未审核,1=已审核" )
    private Integer reviewStatus;

    /**
     * 折扣项目(字典)
     */
    @ApiModelProperty ( "折扣项目(字典)" )
    @TableField ( "discount_items" )
    @Excel ( name = "折扣项目(字典)" )
    private String discountItems;

    /**
     * 折扣类型(字典)
     */
    @ApiModelProperty ( "折扣类型(字典)" )
    @TableField ( "discount_type" )
    @Excel ( name = "折扣类型(字典)" )
    private String discountType;

    /**
     * 折扣依据(字典)
     */
    @ApiModelProperty ( "折扣依据(字典)" )
    @TableField ( "discount_basis" )
    @Excel ( name = "折扣依据(字典)" )
    private String discountBasis;

    /**
     * 计算方式(字典)
     */
    @ApiModelProperty ( "计算方式(字典)" )
    @TableField ( "cal_method" )
    @Excel ( name = "计算方式(字典)" )
    private String calMethod;

    /**
     * 折扣率
     */
    @ApiModelProperty ( "折扣率" )
    @TableField ( "discount_rate" )
    @Excel ( name = "折扣率" )
    private String discountRate;

    /**
     * 折扣额
     */
    @ApiModelProperty ( "折扣额" )
    @TableField ( "discount_amount" )
    @Excel ( name = "折扣额" )
    private String discountAmount;

    /**
     * 单价折扣
     */
    @ApiModelProperty ( "单价折扣" )
    @TableField ( "price_discount" )
    @Excel ( name = "单价折扣" )
    private String priceDiscount;

    /**
     * 分摊方式
     */
    @ApiModelProperty ( "分摊方式" )
    @TableField ( "allocation_method" )
    @Excel ( name = "分摊方式" )
    private String allocationMethod;

    /**
     * 折扣方向(字典)
     */
    @ApiModelProperty ( "折扣方向(字典)" )
    @TableField ( "discount_direction" )
    @Excel ( name = "折扣方向(字典)" )
    private String discountDirection;

    /**
     * 创建人Id
     */
    @ApiModelProperty ( "创建人Id" )
    @TableField ( "user_id" )
    @Excel ( name = "创建人Id" )
    private String userId;

    @ApiModelProperty ( "创建时间" )
    @TableField ( "create_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty ( "更新时间" )
    @TableField ( "change_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )
    private Date changeTime;

    @ApiModelProperty ( "逻辑删除" )
    @TableField ( "is_used" )
    @Excel ( name = "逻辑删除" )
    private Integer isUsed;

    @TableField ( exist = false )
    private String materialCode;

    @TableField ( exist = false )
    private String materialName;

    @TableField ( exist = false )
    private String pricingUnitName;

}
